package com.yehui.jdk.jdk11;

import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author 业徽
 * @date 2021/8/23
 */
public class LambdaDemo {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("关注");
        list.add("我没有三颗心脏");
        list.add("更多精彩内容分享");

        String result = list.stream()
                .map((var x) -> x.toUpperCase())
                .collect(Collectors.joining(","));
        System.out.println(result);

        // 等效写法

        result = list.stream()
                .map(String::toUpperCase)
                .collect(Collectors.joining(","));
        System.out.println(result);

        // 看上去 var 加 lambda 没什么用，但是有些语法是需要类型的，如 @NotNull, 这个时候 var 就很有用了
        result = list.stream()
                .map((@NotNull var x) -> x.toUpperCase())
                .collect(Collectors.joining(","));
        System.out.println(result);
    }

}
